1. Field of the Invention
The present invention relates to a network apparatus and a routing table synchronization technique for realizing a network system such as the Internet or an intranet system, for example.
2. Description of the Related Art
Generally, a network apparatus that handles packets includes a processor part as a control unit. Upon upgrading control performance and introducing a new network application to the apparatus, for example, a deficiency in resources of the processor and the memory becomes an obstacle. As examples of such network application, a routing daemon for realizing a routing calculation, an ftp server for realizing a file transfer service, and/or an http server for providing hypertext information may be implemented.
To counter the above described obstacle, an application operating on such a network apparatus may be arranged so that the application appears to be operating on the main apparatus when viewed from the outside, but is actually operating on a separate server or some other unit (proxy execution of the application). In this way, desired additional processing capabilities may be appropriately provided to the apparatus.
Also, instead of realizing proxy execution of an application, the above problem may be countered by dividing the network apparatus into separate execution apparatuses depending on the various types of services that are provided by the applications of the network apparatus. However, for an application such as the routing daemon that realizes its designated operation by operating on the network apparatus itself, it is difficult to execute the application on a separate apparatus without making additional arrangements. Also, generally, in an IP network, providing various services at the same host address is more convenient for a user since the user may be able to remember the connection destination more easily, and management of the system as a service-providing scheme may be easier as well.
The inventor of the present invention has previously conceived a technique for arranging an application operating on a network apparatus to appear as though it is operating on the main apparatus while it is actually operating on a separate server or some other unit.
According to this technique, a virtual interface that corresponds to an actual interface of the main apparatus (forwarding unit) is provided in an external apparatus (control unit) that is provided separately from the main apparatus, and the external apparatus is arranged to transmit/receive an application that is subject to proxy execution via the virtual interface. In this way, the application may appear as if it is operating on the main part of the apparatus.
Further, in the case of executing plural applications, a technique of assigning a different connection identifier (port number) to each application in establishing communication may be used to provide a separate control unit for executing each application process. As a consequence, while a user may logically perceive the network apparatus as one single apparatus from the outside, by providing separate units for executing the various applications of the network apparatus, scalability in processing performance may be obtained. Also, according to this method, connection may be established/cut dynamically according to the execution start/end of a communication process in an application.
In a case where the control unit for executing each of the various application processes of the network apparatus is provided with plural virtual interfaces, a routing table is used to determine the interface to which a packet is to be transmitted upon sending the packet to a communication counterpart. That is, when a process of an application operating within a control unit is to establish communications with an external apparatus, the routing table is referred to in a process of determining the interface to which connection is to be made. Specifically, a process operating on a control unit designates an IP address as a connection destination upon establishing communications with an external apparatus (communication counterpart apparatus). Accordingly, in order to determine the interface to which the communication counterpart apparatus having the designated destination IP address is connected and/or the virtual interface to which connection is to be established, a correspondence table indicating the correspondence between the destination IP address and the virtual interface to which data are to be transmitted is desired. Such a table corresponds to a routing table. It is noted that a routing table is locally provided in each control unit that implements a process that involves establishing communications with an external apparatus.
In this case, the virtual interfaces of each control unit logically function in the same manner as the corresponding actual interfaces of the forwarding unit that is used as a base point for packet transmission/reception with an external apparatus. Thereby, the routing tables pertaining to the virtual interfaces have to be substantially identical to those of their corresponding actual interfaces.
In the case of statically setting a route through a static routing process, the contents of the routing table in each control unit implementing virtual interfaces may be arranged to correspond to the routing table of the forwarding unit. On the other hand, in the case of dynamically setting a route through a dynamic routing process, the routing tables of the control units and the forwarding unit have to be matched somehow.
Generally, a dynamic routing process generates a routing table using a routing protocol to exchange routing information with surrounding routers. However, when plural control units exist within a network apparatus and a routing protocol process is executed in each of the units, it may appear from the outside as though plural routing protocol processes are operating within a single unit so that the routing protocol processes may end up interfering with each other to thereby prevent proper operation.
Also, it is noted that executing a routing protocol process program in each of the plural control units may be inconvenient in that such an arrangement may be an obstacle to improving the processor performance, which is the object for dividing up the execution of the various applications in the first place.
To solve the above problem, the routing protocol process program may be redesigned entirely to realize a function of matching the routing tables; however, the process sequence of such a program may be very complicated since the routing tables of physically separate control units have to be managed as a single operating unit. Processing may be particularly complicated when an error occurs in the process sequence.